Ради чего мы все поместили в таблицу значений ? Ради того, что бы одним заходом сгруппировать по полю ГруппыОС что нам и нужно было.
Процедура Сформировать()
Результат = СоздатьОбъект("ТаблицаЗначений");
Результат.НоваяКолонка("ГруппыОС","Перечисление.ГруппыОС");
Результат.НоваяКолонка("начБаланс");
Т = СоздатьОбъект("Таблица");
БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства);
БИ.ВыполнитьЗапрос(ДатаНач,ДатаКон,"01.1");
БИ.ВыбратьСубконто(1,0,0,0,0,"Группа",0);
Пока БИ.ПолучитьСубконто() = 1 Цикл
Результат.НоваяСтрока();
Результат.ГруппыОС = БИ.Субконто().Группа;
Результат.начБаланс=БИ.СНД();
КонецЦикла;
Результат.Свернуть("1","2");
Т.ТолькоПросмотр(1);
Т.Показать();
КонецПроцедуры
Как видите я указал, что группировать по первому полю а суммировать по второму. Круто. Смотрим описание.
Свернуть
Свернуть таблицу значений но соответствующим значениям
колонок.
Синтаксис:
Свернуть(<ГруппКолонки>,<СуммКолонки>)
Англоязычный синоним:
GroupBy
Параметры:
<ГруппКолонки> Группировочные колонки (номера или
идентификаторы колонок через запятую), по которым группировать
данные.
<СуммКолонки> Суммируемые колонки (номера или идентификаторы
колонок через запятую), по которым суммировать данные.
Описание:
Метод Свернуть позволяет свернуть таблицу значений по
соответствующим значениям колонок, т. е. заменяет на одну строку все дублирующие
(по значениям группировочных колонок) строки, суммируя значения но суммируемым
колонкам.